package lc.com.lcpicturebackend.service;

import com.baomidou.mybatisplus.extension.service.IService;
import lc.com.lcpicturebackend.model.dto.space.analyze.*;
import lc.com.lcpicturebackend.model.entity.Space;
import lc.com.lcpicturebackend.model.entity.User;
import lc.com.lcpicturebackend.model.vo.analyze.*;

import java.util.List;

/**
 * 功能：
 * 作者：lc
 * 日期：2025/3/4 21:12
 */
public interface SpaceAnalyzeService extends IService<Space> {

    /**
     * 检查空间分析权限
     *
     * @param usageAnalyzeRequest 空间分析请求
     * @param loginUser           登录用户
     * @return 返回分析结果
     */
    SpaceUsageAnalyzeResponse getSpaceUsageAnalyze(SpaceUsageAnalyzeRequest usageAnalyzeRequest, User loginUser);

    /**
     * 获取空间分类分析
     *
     * @param categoryAnalyzeRequest 分类分析请求
     * @param loginUser              登录用户
     * @return
     */
    List<SpaceCategoryAnalyzeResponse> getSpaceCategoryAnalyze(SpaceCategoryAnalyzeRequest categoryAnalyzeRequest, User loginUser);

    /**
     * 获取空间资源标签分析
     *
     * @param tagAnalyzeRequest 分类分析请求
     * @param loginUser              登录用户
     * @return
     */
    List<SpaceTagAnalyzeResponse> getSpaceResourceTagAnalyze(SpaceTagAnalyzeRequest tagAnalyzeRequest, User loginUser);


    /**
     * 获取空间图片大小分析
     *
     * @param sizeAnalyzeRequest 图片大小分析请求
     * @param loginUser           登录用户
     */
    List<SpaceSizeAnalyzeResponse> getSpaceResourceSizeAnalyze(SpaceSizeAnalyzeRequest sizeAnalyzeRequest, User loginUser);

    /**
     * 获取空间用户上传分析
     * @param userAnalyzeRequest 用户上传分析请求
     * @param loginUser            登录用户
     */
    List<SpaceUserAnalyzeResponse> getSpaceUserAnalyze(SpaceUserAnalyzeRequest userAnalyzeRequest, User loginUser);

    /**
     *  获取空间资源排行分析
     * @param spaceRankAnalyzeRequest 空间资源排行分析请求
     * @param loginUser             登录用户
     * @return
     */
    List<Space> getSpaceRankAnalyze(SpaceRankAnalyzeRequest spaceRankAnalyzeRequest, User loginUser);
}
